package com.yxh.www.author.service;

import com.yxh.www.author.domain.SmUserObjectRelation;
import com.yxh.www.common.result.Result;
import com.yxh.www.mysql.base.BaseService;

/**
 * <p>
 * 系统用户对象关系表 服务类
 * </p>
 *
 * @author Yangxiaohui
 * @since 2020-05-09
 */
public interface SmUserObjectRelationService extends BaseService<SmUserObjectRelation> {
    /**
     * 新增系统用户对象关系
     *
     * @param userId     用户ID    必填
     * @param objectIds  对象ID    必填
     * @param objectType 对象类型（0：角色；1：组织） 默认值0
     * @return 统一响应 {@link Result}
     */
    Result<Object> addSmUserObjectRelation(String userId, String[] objectIds, String objectType);

    /**
     * 根据用户对象关系ID删除关系
     *
     * @param ids 关系ID集合
     * @return 统一响应 {@link Result}
     */
    Result<Object> removeSmUserObjectRelation(String[] ids);

    /**
     * 根据用户ID删除 用户对象关系
     *
     * @param userId 用户ID    必填
     * @return 统一响应 {@link Result}
     */
    Result<Object> removeSmUserObjectRelationByUserId(String userId);

    /**
     * 根据对象ID删除 用户对象关系
     *
     * @param objectId 对象ID  必填
     * @return 统一响应 {@link Result}
     */
    Result<Object> removeSmUserObjectRelationByObjectId(String objectId);

    /**
     * 根据用户ID和 对象ID 解除用户对象关系
     *
     * @param userId   用户ID    必填
     * @param objectId 对象ID    必填
     * @return 统一响应 {@link Result}
     */
    Result<Object> removeSmUserObjectRelationByUserIdAndObjectId(String userId, String objectId);
}
